home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / urn / urn-archives / urn-ietf.archive.9703 / 000058_owner-urn-ietf _Wed Mar 26 17:06:07 1997.msg < prev    next >
Internet Message Format  |  1997-04-01  |  19KB

  1. Received: (from daemon@localhost)
  2.     by services.bunyip.com (8.8.5/8.8.5) id RAA03899
  3.     for urn-ietf-out; Wed, 26 Mar 1997 17:06:07 -0500 (EST)
  4. Received: from mocha.bunyip.com (mocha.Bunyip.Com [192.197.208.1])
  5.     by services.bunyip.com (8.8.5/8.8.5) with SMTP id RAA03893
  6.     for <urn-ietf@services.bunyip.com>; Wed, 26 Mar 1997 17:05:58 -0500 (EST)
  7. Received: from MODEC23090.ABRAXIS.COM by mocha.bunyip.com with SMTP (5.65a/IDA-1.4.2b/CC-Guru-2b)
  8.         id AA02250  (mail destined for urn-ietf@services.bunyip.com); Wed, 26 Mar 97 17:05:46 -0500
  9. Received: from bailey (localhost [127.0.0.1]) by modec23090.abraxis.com (8.8.2/8.8.2) with SMTP id RAA21490; Wed, 26 Mar 1997 17:05:02 -0500 (EST)
  10. Message-Id: <33399D8C.FE1@rwhois.net>
  11. Date: Wed, 26 Mar 1997 17:05:00 -0500
  12. From: Michael Mealling <michaelm@rwhois.net>
  13. Organization: Network Solutions
  14. X-Mailer: Mozilla 3.01Gold (X11; I; SunOS 5.5 sun4m)
  15. Mime-Version: 1.0
  16. To: Internet-Drafts@ietf.org
  17. Cc: urn-ietf@bunyip.com, rdaniel@acl.lanl.gov,
  18.         Leslie Daigle <leslie@bunyip.com>
  19. Subject: [URN] draft-urn-resolution-services-01.txt
  20. Content-Type: text/plain; charset=us-ascii
  21. Content-Transfer-Encoding: 7bit
  22. Sender: owner-urn-ietf@Bunyip.Com
  23. Precedence: bulk
  24. Reply-To: Michael Mealling <michaelm@rwhois.net>
  25. Errors-To: owner-urn-ietf@Bunyip.Com
  26.  
  27. URN Working Group                                                  
  28. M.Mealling
  29. INTERNET-DRAFT                                         Network
  30. Solutions, Inc.
  31. Expires six months from March 1997                              Ron
  32. Daniel Jr.
  33. Intended category: Standards Track              Los Alamos National
  34. Laboratory
  35.  
  36.                            URN Resolution Services
  37.  
  38. Status of this Memo
  39.  
  40.      This document is an Internet-Draft. Internet-Drafts are working
  41.      documents of the Internet Engineering Task Force (IETF), its areas,
  42.      and its working groups. Note that other groups may also distribute
  43.      working documents as Internet-Drafts.
  44.  
  45.      Internet-Drafts are draft documents valid for a maximum of six
  46.      months and may be updated, replaced, or obsoleted by other
  47. documents
  48.      at any time. It is inappropriate to use Internet-Drafts as
  49. reference
  50.      material or to cite them other than as work in progress.
  51.  
  52.      To learn the current status of any Internet-Draft, please check
  53.      the 1id-abstracts.txt listing contained in the Internet-Drafts
  54.      Shadow Directories on ds.internic.net (US East Coast),
  55. nic.nordu.net
  56.      (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
  57. Rim).
  58.  
  59. Abstract
  60.  
  61. Fetching the resource identified by a Uniform Resource Identifier (URI)
  62. [3]
  63. is only one of the operations that can be performed on a URI. We might
  64. ask
  65. for a list of other identifiers that are aliases for the original URI, a
  66. bibliographic description of the resource the URI denotes, etc. Because
  67. of
  68. the diverse nature of resources on the network, it may be difficult (or
  69. impossible) to offer all those operations, therefore a means of
  70. indicating
  71. what services are and are not supported by a given resolver must be
  72. specified. This memo gives an initial set of those operations, and the
  73. requirements that must be met when those operations are encoded in a
  74. protocol.
  75.  
  76. 1. Introduction
  77.  
  78. In the course of formulating current proposals [1] regarding Uniform
  79. Resource Names [2] it became apparent that requiring servers to deal
  80. with
  81. all desired functions or requiring clients to deal with complicated
  82. information returned by a server was unrealistic and a barrier to
  83. adoption.
  84. There needed to be some way for a client to be able to pick between a
  85. server
  86. that specialized in the complex and another that specialized in the
  87. simple
  88. (but fast). Also, in subsequent conversations it became obvious that, in
  89. most cases, some of the operations were inappropriate or difficult for
  90. certain identifiers. For example, ISSNs identify books or magazines that
  91. are
  92. serial in nature. An operation to return the resource for an ISSN
  93. pointing
  94. to "Time" magazine would result in dumping hundreds of thousands of
  95. pages of
  96. "Time" onto a user's machine. This does not seem like a reasonable thing
  97. to
  98. do in the normal case.
  99.  
  100. The Problem
  101.  
  102. The problem, stated simply, was one of a client needing to convey to a
  103. service some idea of the desired operation on a URI that the client is
  104. currently talking about. The problem was also that the server needed to
  105. convey to a client which network entity could perform which of the
  106. operations that were allowed for that particular URI.
  107.  
  108. This problem requires we specify some well understood set of identifiers
  109. that could identify the operation that a particular network entity
  110. either
  111. desired or could perform. But it was also realized that an exhaustive
  112. set
  113. would both be impossible and not very necessary. Thus, while this
  114. document
  115. will list several operations, it will also lay out the requirments for
  116. specifying new operations.
  117.  
  118. Design Criteria
  119.  
  120. The design criteria used to meet these requirements were fairly simple.
  121. The
  122. need to simply identify the operation with some token and know its
  123. operands
  124. and algorithm was seen as sufficient to meet the requirements. Thus, as
  125. with
  126. most things simple the simple set of design criteria ended up being:
  127. simple,
  128. extensible, generic and short.
  129.  
  130. As with most design requirements there are several that are at cross
  131. purposes. Thus for anyone adding to this list these design criteria
  132. should
  133. be kept in mind and balanced against each other.
  134.  
  135. 2. General Specification
  136.  
  137. In order to provide a framework both for the specifications in this
  138. document
  139. and for new ones to be written by others the following requirments are
  140. placed on any documents that seek to specify new operations.
  141.  
  142. Any specification of a member of this set of operations MUST contain at
  143. least the following pieces of information with respect to its operands,
  144. its
  145. algorithm and its output.
  146.  
  147.    * 2.1 Operands
  148.  
  149.      Must contain the following pieces of information:
  150.         o name of the operation
  151.         o mnemonic for the operation
  152.         o number of operands
  153.         o type of each operand
  154.         o format of each operand
  155.  
  156.    * 2.2 Algorithm Must either specify the exact algorithm for the
  157. operation
  158.      or must specify that the algorithm is opaque and defined by the
  159. server.
  160.  
  161.  
  162.    * 2.3 Output Must either specify one of the following:
  163.         o there is no output
  164.         o the output is undefined
  165.         o the output itself and its content
  166.         o the fact that the output is an object and that objects type
  167. and
  168.           format.
  169.  
  170. 3. Encoding The Operations
  171.  
  172. To be useful these operations have to be used within some system or
  173. protocol. In many cases these systems and protocols will place
  174. restrictions
  175. on which operations make sense and how those that do are syntactically
  176. represented.
  177.  
  178. Also, a given system or protocol will have its own output formats that
  179. will
  180. restrict the output formats of a given operation. Additionally, a given
  181. protocol may have better solution for output than the ones given here.
  182. For
  183. example, the N2L result may be encoded in a protocol specific manner
  184. that
  185. causes the client to treat it as special.
  186.  
  187. Thus, the requirements on encoding these operations within a given
  188. system
  189. are the following:
  190.  
  191.    * which subset of the operations are allowed
  192.    * how the operator is encoded
  193.    * how the operands are encoded
  194.    * what the output format is
  195.  
  196. For those system that can use it, MIME [4] is the suggested output
  197. format.
  198. The operations listed here use the text/uri-list Internet Media Type or
  199. IMT
  200. [4] that is specified in Appendix A. Other system are strongly
  201. encouraged to
  202. use this IMT. In the case where a system does not use an IMT a
  203. justification
  204. should be given.
  205.  
  206. 4. The Incomplete Set
  207.  
  208. 4.1 N2L (URN to URL)
  209.  
  210.    * name: URN to URL
  211.    * mnemonic: N2L
  212.    * number of operands: 1
  213.    * type of each operand: 1st operand is a URN
  214.    * format of each operand: 1st operand is encoded as a URI
  215.    * algorithm: opaque
  216.    * output: 1 and only one URL encoded in a text/uri-list
  217.  
  218. This operation is used to map a single URN to a single URL. It is used
  219. by
  220. light weight clients that do not have the ability to select from a list
  221. of
  222. URLs or understand a Uniform Resource Characteristic (URC). The
  223. algorithm
  224. for this mapping is dependent on the URN namespace.
  225.  
  226. 4.2 N2Ls (URN to URLs)
  227.  
  228.    * name: URN to URLs
  229.    * mnemonic: N2LS
  230.    * number of operands: 1
  231.    * type of each operand: 1st operand is a URN
  232.    * format of each operand: 1st operand is encoded as a URI
  233.    * algorithm: opaque
  234.    * output: a list of 0 or more URLs encoded in a text/uri-list
  235.  
  236. This operation is used to map a single URN to 0 or more URLs. It is used
  237. by
  238. a client that can pick from a list of URLs based on some criteria that
  239. is
  240. important to the client. The client should not make any assumptions
  241. about
  242. the order of the URLs returned.
  243.  
  244. No matter what the particular media type, the result MUST be a list of
  245. the
  246. URLs that may be used to obtain an instance of the resource identified
  247. by
  248. the URN. All URIs shall be encoded according to the URI specification
  249. [6].
  250.  
  251. 4.3 N2R (URN to Resource)
  252.  
  253.    * name: URN to Resource
  254.    * mnemonic: N2R
  255.    * number of operands: 1
  256.    * type of each operand: 1st operand is a URN
  257.    * format of each operand: 1st operand is encoded as a URI
  258.    * algorithm: opaque
  259.    * specified. instance of the resource named by the URN. Encoding is
  260. not
  261.  
  262. This operation is used to return a single instance of the resource that
  263. is
  264. named by the URN. The format of the output is dependent on the resource
  265. itself.
  266.  
  267. 4.4 N2Rs (URN to Resources)
  268.  
  269.    * name: URN to Resources
  270.    * mnemonic: N2Rs
  271.    * number of operands: 1
  272.    * type of each operand: 1st operand is a URN
  273.    * format of each operand: 1st operand is encoded as a URI
  274.    * algorithm: opaque
  275.    * is not specified. instances of the resource named by the URN.
  276. Encoding
  277.  
  278. This operation is used to return multiple instances of a resource, for
  279. example, GIF and JPEG versions of an image. The judgment about the
  280. resources
  281. being "the same" resides with the naming authority that issued the URN.
  282.  
  283. The output shall be a MIME multipart/alternative [4] message with the
  284. alternative versions of the resource in separate body parts. If there is
  285. only one version of the resource identified by the URN, it MAY be
  286. returned
  287. without the multipart/alternative wrapper.
  288.  
  289. 4.5 N2C (URN to URC)
  290.  
  291.    * name: URN to URC
  292.    * mnemonic: N2C
  293.    * number of operands: 1
  294.    * type of each operand: 1st operand is a URN
  295.    * format of each operand: 1st operand is encoded as a URI
  296.    * algorithm: opaque
  297.    * output: A Uniform Resource Characteristic. Encoding is not
  298. specified.
  299.  
  300. URCs (Uniform Resource Characteristics) are descriptions of other
  301. resources.
  302. This request allows the client to obtain a description of the resource
  303. identified by a URN, as opposed to the resource itself or simply the
  304. resources URLs. The description might be a bibliographic citation, a
  305. digital
  306. signature, a revision history, etc. This draft does not specify the
  307. content
  308. of any response to a URC request. That content is expected to vary from
  309. one
  310. server to another.
  311.  
  312. 4.6 N2Ns (URN to URNs)
  313.  
  314.    * name: URN to URNs
  315.    * mnemonic: N2Ns
  316.    * number of operands: 1
  317.    * type of each operand: 1st operand is a URN
  318.    * format of each operand: 1st operand is encoded as a URI
  319.    * algorithm: opaque
  320.    * output: A list of URNs encoded in a text/uri-list IMT.
  321.  
  322. While URNs are supposed to identify one and only one resource, that does
  323. not
  324. mean that a resource may have one and only one URN. For example,
  325. consider a
  326. resource that has something like "current-weather-map" for one URN and
  327. "weather-map-for-datetime-x" for another URN. The N2Ns service request
  328. lets
  329. the client obtain lists of URNs that are believed equivalent at the time
  330. of
  331. the request. As the weathermap example shows, some of the equivalences
  332. will
  333. be transitory, so the the server should convey the length of time for
  334. which
  335. the mapping is valid. The result is a list of all the URNs, known to the
  336. server, which identify the same resource as the input URN. The result
  337. shall
  338. be encoded in a text/uri-list IMT.
  339.  
  340. 4.7 L2Ns (URL to URNs)
  341.  
  342.    * name: URN to URNs
  343.    * mnemonic: N2Ns
  344.    * number of operands: 1
  345.    * type of each operand: 1st operand is a URN
  346.    * format of each operand: 1st operand is encoded as a URI
  347.    * algorithm: opaque
  348.    * output: A list of URNs encoded in a text/uri-list IMT.
  349.  
  350. This operation is used to discover the URN associated with a particular
  351. URL.
  352. As with all operations dealing with URNs how that URN is mapped is
  353. completely dependent on the rules specified by the namespace.
  354.  
  355. 4.8 L2Ls (URL to URLs)
  356.  
  357.    * name: URL to URLs
  358.    * mnemonic: L2Ls
  359.    * number of operands: 1
  360.    * type of each operand: 1st operand is a URL
  361.    * format of each operand: 1st operand is encoded as a URI
  362.    * algorithm: opaque
  363.    * output: A list of URLs encoded in a text/uri-list IMT.
  364.  
  365. This operation is used to discover URLs that are considered equal to
  366. each
  367. other. As with the N2N operation "equality" is defined by the server and
  368. is
  369. opaque to the client.
  370.  
  371. 4.9 L2C (URL to URC):
  372.  
  373.    * name: URL to URC
  374.    * mnemonic: L2C
  375.    * number of operands: 1
  376.    * type of each operand: 1st operand is a URL
  377.    * format of each operand: 1st operand is encoded as a URI
  378.    * algorithm: opaque
  379.    * output: A URC.
  380.  
  381. This operation is used to retrieve the URC for a given URL. As with most
  382. other URI mappings the mapping function is opaque. As with any other
  383. operation that returns a URC, the output format is unspecified.
  384.  
  385. 4.10 I2I (URI to URI):
  386.  
  387.    * name: URI to URI
  388.    * mnemonic: I2I
  389.    * number of operands: 1
  390.    * type of each operand: 1st operand is a URL
  391.    * format of each operand: 1st operand is encoded as a URI
  392.    * algorithm: opaque
  393.    * output: A URI.
  394.  
  395. This operation is used to map any arbitrary URI to any other arbitrary
  396. URI.
  397. No other assertions are made about whether or not the URI exhibits
  398. characteristics of URNs or URLs.
  399. 4.11 N2I (URI to URI):
  400.  
  401.    * name: URN to URI
  402.    * mnemonic: N2I
  403.    * number of operands: 1
  404.    * type of each operand: 1st operand is a URL
  405.    * format of each operand: 1st operand is encoded as a URI
  406.    * algorithm: opaque
  407.    * output: A URI.
  408.  
  409. This operation is used to map a URN to any other arbitary URI. No other
  410. assertions are made about whether or not the URI exhibits
  411. characteristics of
  412. URNs or URLs.
  413.  
  414. 4.11 I=I (Is URI equal to URI):
  415.  
  416.    * name: URI = URI
  417.    * mnemonic: I=I
  418.    * number of operands: 2
  419.    * type of each operand: Both operands are URIs
  420.    * format of each operand: both operands are encoded as a URIs
  421.    * algorithm: opaque
  422.    * output: TRUE or FALSE
  423.  
  424. This operation is used to determine whether two given URIs are
  425. considered to
  426. be equal by the server being asked the question. The algorithm used to
  427. determine equality is opaque. No assertions are made about whether or
  428. not
  429. the URIs exhibits characteristics of URNs or URLs.
  430.  
  431. 6. The text/uri-list Internet Media Type
  432.  
  433.      [This section will be augmented or replaced by the registration of
  434.      the text/uri-list IMT once that registration has been performed].
  435.  
  436. Several of the resolution service requests, such as N2Ls, N2Ns, L2Ns,
  437. L2Ls,
  438. result in a list of URIs being returned to the client. The text/uri-list
  439. Internet Media Type is defined to provide a simple format for the
  440. automatic
  441. processing of such lists of URIs.
  442.  
  443. The format of text/uri-list resources is:
  444.  
  445.   1. Any lines beginning with the '#' character are comment lines and
  446. are
  447.      ignored during processing. (Note that '#' is a character that may
  448.      appear in URIs, so it only denotes a comment when it is the first
  449.      character on a line).
  450.   2. The remaining non-comment lines MUST be URIs (URNs or URLs),
  451. encoded
  452.      according to the URI specification RFC[6]. Each URI shall appear on
  453. one
  454.      and only one line.
  455.   3. As for all text/* formats, lines are terminated with a CR LF pair,
  456.      although clients should be liberal in accepting lines with only one
  457. of
  458.      those characters.
  459.   4. The order of the URIs given MUST be preserved upon retransmission.
  460. The
  461.      client should not make any inferences about what the order of the
  462.      returned list means.
  463.  
  464. In applications where one URI has been mapped to a list of URIs, such as
  465. in
  466. response to the N2Ls request, the first line of the text/uri-list
  467. response
  468. SHOULD be a comment giving the original URI.
  469.  
  470. An example of such a result for the N2L request is shown below in figure
  471. 1.
  472.              --------------------------------------------------
  473.  
  474.      # urn:cid:foo@huh.org
  475.      http://www.huh.org/cid/foo.html
  476.      http://www.huh.org/cid/foo.pdf
  477.      ftp://ftp.foo.org/cid/foo.txt
  478.  
  479.                 Figure 1: Example of the text/uri-list format
  480.              --------------------------------------------------
  481.  
  482. 7. References
  483.  
  484. [1] Ron Daniel and Michael Mealling, "Resolution of Uniform Resource
  485.     Identifiers using the Domain Name System",
  486. draft-ietf-urn-naptr-02.txt,
  487.     February, 1997.
  488.  
  489. [2] R. Moats, "URN Syntax", draft-ietf-urn-syntax-02, Jan. 1997.
  490.  
  491. [3] RFC 1630, "Universal Resource Identifiers in WWW: A Unifying Syntax
  492. for
  493.     the Expression of Names and Addresses of Objects on the Network as
  494.     used in the World-Wide Web", T. Berners-Lee, June 1994.
  495.  
  496. [4] RFC 1521, "MIME (Multipurpose Internet Mail Extensions) Part One:
  497.     Mechanisms for Specifying and Describing the Format of Internet
  498. Message
  499.     Bodies", Borenstein, N. and and N. Freed, Bellcore, Innosoft,
  500.     September 1993.
  501.  
  502. 8. Security Considerations
  503.  
  504. Communications with a server may be of a sensitive nature. Some servers
  505. will
  506. hold information that should only be released to authorized users. The
  507. results from servers may be the target of spoofing, especially once
  508. electronic commerce transactions are common and there is money to be
  509. made by
  510. directing users to pirate repositories rather than repositories which
  511. pay
  512. royalties to rights-holders. Server requests may be of interest to
  513. traffic
  514. analysts. The requests may also be subject to spoofing.
  515.  
  516. 9. Author Contact Information
  517.  
  518. Michael Mealling
  519. Network Solutions
  520. 505 Huntmar Park Drive
  521. Herndon, VA 22070
  522. voice: (703)742-0400
  523. fax: (703)742-9552
  524. email: michaelm@rwhois.net
  525.  
  526. Ron Daniel
  527. Advanced Computing Lab, MS B287
  528. Los Alamos National Laboratory
  529. Los Alamos, NM, USA, 87545
  530. voice: +1 505 665 0597
  531. fax: +1 505 665 4939
  532. email: rdaniel@lanl.gov